/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package caintra.Sapra.Pantalla.Empresa;

import caintra.Sapra.ComponentsImplements.BotonCaintra;
import caintra.Sapra.ComponentsImplements.TableCaintra;
import caintra.Sapra.Model.Calendariofacturacionpracticantes;
import java.util.ArrayList;
import java.util.List;
import nextapp.echo2.app.Column;
import nextapp.echo2.app.ContentPane;
import nextapp.echo2.app.RadioButton;
import nextapp.echo2.app.Row;
import nextapp.echo2.app.button.ButtonGroup;
import nextapp.echo2.app.event.ActionEvent;
import nextapp.echo2.app.event.ActionListener;

/**
 *
 * @author luiz
 */
public class Cal_FacturaView extends ContentPane implements ActionListener{
    
    BotonCaintra bt_eliminar_fecha,bt_eliminar_fecha_bd;
    RadioButton cal_1,cal_2;
    Column col_supreme,col_archivo,col_bd;
    TableCaintra fecha_archivo,fecha_bd;
    EmpresaController empresa_controller;
    List<Calendariofacturacionpracticantes> lista_bd;
    
    public Cal_FacturaView(EmpresaController empresa){
        this.empresa_controller = empresa;
        initcomponents();
        design_sheet();
        execute();
    }
    public void execute(){
        try {
            if(empresa_controller.empresa == null){
                cal_1.setVisible(true);
                cal_2.setVisible(false);
                cal_1.setSelected(true);   
                col_archivo.setVisible(true);
                col_bd.setVisible(false);
                fecha_archivo.setCalendario(empresa_controller.lista_fechas);
            }else{
                cal_1.setVisible(true);
                cal_2.setVisible(true);
                col_archivo.setVisible(true);
                bt_eliminar_fecha.setVisible(false);
                bt_eliminar_fecha_bd.setVisible(false);
                col_bd.setVisible(true);
            }
        } catch (Exception e) {
        }
    }
    public void initcomponents(){
        try {
            col_supreme = new Column();
            col_archivo = new Column();
            col_bd = new Column();
            
            cal_1 = new RadioButton("Fechas de Archivo");
            cal_2 = new RadioButton("Fechas Guardadas");
            cal_1.setActionCommand("chk_archivo");
            cal_2.setActionCommand("chk_bd");
            bt_eliminar_fecha = new BotonCaintra("eliminar.png", "el_archivo");
            bt_eliminar_fecha_bd = new BotonCaintra("eliminar.png", "el_bd");
            fecha_archivo = new TableCaintra("fecha_archivo", 500);
            fecha_bd = new TableCaintra("fecha_bd", 500);
            
            cal_1.addActionListener(this);
            cal_2.addActionListener(this);
            bt_eliminar_fecha.addActionListener(this);
            bt_eliminar_fecha_bd.addActionListener(this);
            
            
        } catch (Exception e) {
        }
    
    
    }
    public void design_sheet(){
        try {
            Row r=new Row();
            ButtonGroup gp=new ButtonGroup();
            cal_1.setGroup(gp);
            cal_2.setGroup(gp);
            r.add(cal_1);
            r.add(cal_2);
            
            col_archivo.add(bt_eliminar_fecha);
            col_archivo.add(fecha_archivo);
            
            col_bd.add(bt_eliminar_fecha_bd);
            col_bd.add(fecha_bd);
            col_supreme.add(r);
            col_supreme.add(col_archivo);
            col_supreme.add(col_bd);
            
            add(col_supreme);
        } catch (Exception e) {
        }
        
    
    }

    public void actionPerformed(ActionEvent e) {
        if(e.getActionCommand().equals("chk_archivo")){check_Archivo();}
        if(e.getActionCommand().equals("chk_bd")){check_Bd();}
        if(e.getActionCommand().equals("el_archivo")){eliminar_archivo();}
        if(e.getActionCommand().equals("el_bd")){eliminar_bd();}
    }
    public void check_Archivo(){
        try {
            if(cal_1.isSelected()){
                    bt_eliminar_fecha.setVisible(true);
                    bt_eliminar_fecha_bd.setVisible(true);
                    col_archivo.setVisible(true);
                    col_bd.setVisible(false);
                    
                    fecha_archivo.setCalendario(empresa_controller.lista_fechas);
            }
        } catch (Exception e) {
        }
        
    }
    public void check_Bd(){
        try {
            if(cal_2.isSelected()){
                    bt_eliminar_fecha.setVisible(true);
                    bt_eliminar_fecha_bd.setVisible(true);
                    col_archivo.setVisible(false);
                    col_bd.setVisible(true);
                    lista_bd = empresa_controller.query.getCalendarios(empresa_controller.empresa.getEmpresaId());
                    if(lista_bd != null)
                        fecha_archivo.setCalendario(lista_bd);
            }
        } catch (Exception e) {
        }
    }
    public void eliminar_archivo(){
        try {
            if(cal_1.isSelected()){
                if(fecha_archivo.getSelectionModel().isSelectionEmpty()){
                
                }else{
                    Calendariofacturacionpracticantes cf;
                    cf=(Calendariofacturacionpracticantes)this.empresa_controller.lista_fechas.get(fecha_archivo.getSelectionModel().getMinSelectedIndex());
                    this.empresa_controller.lista_fechas.remove(cf);
                    fecha_archivo.setCalendario(this.empresa_controller.lista_fechas);         
                }
            }
        } catch (Exception e) {
        }
    }
    public void eliminar_bd(){
        try {
            if(cal_2.isSelected()){
                if(fecha_bd.getSelectionModel().isSelectionEmpty()){
                
                }else{
                    Calendariofacturacionpracticantes cf;
                    cf=(Calendariofacturacionpracticantes)this.lista_bd.get(fecha_bd.getSelectionModel().getMinSelectedIndex());
                    this.empresa_controller.query.elimina_fecha(cf);
                    lista_bd = empresa_controller.query.getCalendarios(empresa_controller.empresa.getEmpresaId());
                    if(lista_bd != null)
                        fecha_bd.setCalendario(lista_bd);         
                }
            }
        } catch (Exception e) {
        }
    }
    
    
}
